package com.baidu.mpks.schema.dao;

import com.baidu.mpks.schema.domain.UserSchemaProperty;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface UserSchemaPropertyDao {

    void insert(UserSchemaProperty schemaProperty);

    void update(UserSchemaProperty schemaProperty);

    void deleteById(@Param("id") Integer id);

    void deleteByDomain(@Param("domain") String domain);

    void deleteByClassId(@Param("classId") Integer classId);

    List<UserSchemaProperty> getByDomain(@Param("domain") String domain);

    List<UserSchemaProperty> getAll();

    List<UserSchemaProperty> getByAtId(@Param("atId") String atId);

    Set<String> getPropIdByDomain(@Param("domain") String classAtId);

    void updateDomain(String newId, String oldId);

    void updateIndexAndWeight(@Param("id") Integer id, @Param("index") Integer index, @Param("weight") Integer weight);

    List<UserSchemaProperty> listByPid(@Param("pid") int pid);

    UserSchemaProperty getPropById(@Param("id") Integer id);
}
